package org.wdzl.services;

import org.wdzl.netty.ChatMsg;
import org.wdzl.pojo.FriendsRequest;
import org.wdzl.pojo.User;
import org.wdzl.vo.FriendsRequestVO;
import org.wdzl.vo.MyFriendsVO;

import java.util.List;

/**
 * @author Administrator 
 */
public interface UserServices {

    /**
     * 根据用户名查找指定用户对象
     *
     * @param username
     * @return
     */
    User queryUserNameIsExit(String username);

    /**
     * 保存用户
     *
     * @param user
     * @return
     */
    User insert(User user);

    /*    //修改用户
    User updateUserInfo(User user);
    User getUserById(String id);
    */

    /**
     * 搜索好友的前置条件接口
     * 
     * @param myUserId
     * @param friendUserName
     * @return
     */
    Integer preconditionSearchFriends(String myUserId, String friendUserName);
    
    /**
     * 发送好友请求
     * 
     * @param myUserId
     * @param friendUserName
     */
    void  sendFriendRequest(String myUserId,String friendUserName);

    /**
     * 好友请求列表查询
     *
     * @param acceptUserId
     * @return
     */
    List<FriendsRequestVO> queryFriendRequestList(String acceptUserId);

    /**
     * 处理好友请求——忽略好友请求
     *
     * @param friendsRequest
     */
    void deleteFriendRequest(FriendsRequest friendsRequest);

    /**
     * 处理好友请求——通过好友请求
     *
     * @param sendUserId
     * @param acceptUserId
     */
    void passFriendRequest(String sendUserId,String acceptUserId);

    /**
     * 好友列表查询
     */
    List<MyFriendsVO> queryMyFriends(String userId);

    /**
     * 保存用户聊天消息
     *
     * @param chatMsg
     * @return
     */
    String saveMsg(ChatMsg chatMsg);

    /**
     * 更新消息状态
     *
     * @param msgIdList
     */
    void updateMsgSigned(List<String> msgIdList);

    /**
     * 获取未签收的消息列表
     *
     * @param acceptUserId
     * @return
     */
    List<org.wdzl.pojo.ChatMsg> getUnReadMsgList(String acceptUserId);

}